<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Title</title>
</head>
<body>

</body>
<script>
	// * 抽象表达:
	// 1. Promise是一门新的技术(`ES6`规范)
	// 2. Promise是`JS`中进行异步编程的新解决方案
	// 备注：旧方案是单纯使用回调函数
	// {
	// 	function ajax(cb){
	// 		const xhr = new XMLHttpRequest();
	// 		xhr.open("get","2-回调函数.html");
	// 		xhr.send();
	// 		xhr.onload = function(){
	// 			cb(xhr.response)
	// 		}
	// 	}
	// 	ajax(function(res){
	// 		console.log(res);
	// 	});
	// 	ajax(function(res){
	// 		alert(res);
	// 	})
	// }
	
	
	
	
	
	
	// * 具体表达:
	// 1) 从语法上来说: Promise是一个构造函数
	// {
	// 	new Promise();
	// }
	
	// 2) 从功能上来说: promise对象用来封装一个异步操作并可以获取其成功/失败的结果值
	{
		new Promise(function(resolve,reject){
			// 执行器函数（同步执行）;
			// console.log(1);
			// resolve(1);// 将状态更改为成功
			// reject(2);// 将状态更改为失败
			
			// setTimeout(()=>{
			// 	resolve(1)
			// }
			
			const xhr = new XMLHttpRequest();
			xhr.open("get","2-回调函数.html");
			xhr.send();
			xhr.onload = function(){
				resolve(xhr.response)
			}
			
		}).then(function(res){
			// 成功回调
			console.log("成功回调",res);
		},function(){
			// 失败回调
			console.log("失败回调");
		});
		// console.log(2)
	}
</script>
</html>